[アップデート] AWS LambdaのコンソールがLambda Layersの一括更新に対応しました
Lambda Layersを更新後にLambda関数側で新しいバージョンを指定するの面倒だな
こんにちは、のんピ(@non____97)です。
Lambda関数に関連づいているLambda Layersのバージョンを更新する作業が面倒だなと思ったことはありますか? 私はあります。
Layerを更新すると新しいバージョンが発行されます。Lambda関数で新しいバージョンのLayerを使用する際は、そのバージョンをLambda関数で指定してあげる必要があります。
Layerを使っているLambda関数が一つであれば更新の手間は大したことないですが、Lambda Layersは複数のLambda関数でライブラリを共有するための仕組みであるので、複数のLambda関数と関連づいていることがほとんどです。
マネージメントコンソールで複数のLambda関数でLayerのバージョンを指定し直すのはなかなか骨が折れます。
Layerのバージョンを変更する作業は以下のように3ステップもあります。
- 変更したいLambda関数をクリックする
- Layerの
編集
をクリックする - Layerのバージョンを指定し、
保存
をクリックする。
こんなちょっと面倒な複数のLambda関数のLayerバージョン変更がアップデートで一気に行えるようになりました。
これはありがたいです。
早速この機能を使ってみたので紹介します。
Lambda Layerのバージョンを変更してみた
テスト用にpython-test
とpython-test2
というLambda関数を2つ用意します。
これらのLambda関数にLayerを追加します。
テスト用のLayerであるaes-siem-configure-es-loader
を確認すると、Functions using this version
というのがあるのが分かります。
Functions using this version
をクリックすると、このバージョンのLayerを使用している関数を一覧できそうな画面が表示されました。
見たところ、どうやらLayerの設定画面からLambda関数にLayerを追加する動線はないようですね。
それでは、2つのテスト用のLambda関数にバージョン107のaes-siem-configure-es-loader
を追加します。
Layerの追加が完了した後に、バージョン107のaes-siem-configure-es-loader
のFunctions using this version
タブを確認すると、先ほどLayerを追加した2つのLambda関数が表示されました。
2つのLambda関数を選択しEdit
をクリックすると、Lambda関数に関連づいているLayerのバージョン変更画面になりました。
それでは試しにLayerのバージョンを50に変更してみます。
Layer versionのプルダウンで50
を指定して、Update functions
をクリックします。
更新が完了すると、「2 functions successfully updated」と表示され、各Lambda関数のStatusもSuccessとなりました。
実際にLambda関数の詳細画面からLayerを確認してみると、どちらのLambda関数もLayerのバージョンが50となっていました。
これは今までの作業と比較して、とんでもなく楽ですね。
ちなみにもう一度Layerのバージョン107のFunctions using this version
を確認すると、No functions are using this layer version.
となっていました。
一方でバージョン50のFunctions using this version
を確認すると、しっかりと2つのLambda関数が表示されていました。
Layerのバージョン毎にどのLambda関数に追加されているのか確認する必要があるのが要注意ですね。
Lambda Layerのメンテナンス時に大活躍間違いなし
AWS LambdaのコンソールがLambda Layersの一括更新に対応したアップデートを紹介しました。
メンテナンスなどで共通部分のLayerを更新する必要があっても、この機能があれば簡単にLambda関数に反映することができます。
Lambda Layersの基本的な紹介や活用方法の詳細については以下記事をご覧ください。
この記事が誰かの助けになれば幸いです。
以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!